package com.freewater.javabase.demo.network.uri;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

// URL是URI的一种特例，java.net.URI只标识资源，java.net.URL即标识资源又能获取资源
// URI的语法是有一个模式和一个模式的特定部分组成（模式:模式特定部分）。
// 例如：http://www.baidu.com/image/search?keyword=abc表示，模式为http、授权机构为www.baidu.com、路径为/image/search，另外查询为keyword=abc
// 例如：ftp://jack:123456@some.ftp.com:33/music.mp3 这个授权机构是jack:123456@some.ftp.com:33，授权机构有用户名jack、密码123456、主机some.ftp.com
// 、端口33，它的模式是ftp。
public class URIDemo {
    public static void main(String[] args) throws URISyntaxException, IOException {
        URI uri = new URI("https://www.baidu.com/s?wd=人工智能");
        // 未编码的uri字符串表示
        System.out.println(uri);// https://www.baidu.com/s?wd=人工智能
        // 编码后的uri标识
        System.out.println(uri.toASCIIString()); // https://www.baidu.com/s?wd=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD
    }
}
